The present invention relates in general to decoding a coded representation of a block of coefficients of a digital image. In particular, the invention relates to the decoding of a coded representation of a block of transform coefficients of a digital image.
In the field of digital image compression, many different techniques have been utilized. In particular, one popular technique is the JPEG standard which utilizes the discrete cosine transform to transform standard size blocks of an image into corresponding cosine components. The JPEG standard also provides for the subsequent compression of the transformed coefficients.
Recently, the field of wavelet transforms has gained great attention as an alternative form of data compression. The wavelet transform has been found to be highly suitable in representing data having discontinuities such as sharp edges. Such discontinuities are often present in image data or the like.
Although the preferred embodiments of the present invention will be described with reference to the compression of image data, it will be readily evident that the preferred embodiment is not limited thereto. For examples of the many different applications of Wavelet analysis to signals, reference is made to a survey article entitled xe2x80x9cWavelet Analysisxe2x80x9d by Bruce et. al. appearing in IEEE Spectrum, October 1996 page 26-35. For a discussion of the different applications of wavelets in computer graphics. reference is made to xe2x80x9cWavelets for Computer Graphicsxe2x80x9d, I. Stollinitz et. al. published 1996 by Morgan Kaufmann Publishers, Inc.
It would be desirable to provide a method and hardware embodiment of an encoder and method so as to provide for efficient and effective encoding and decoding of a series of coefficients in order to substantially increase the speed of encoding and decoding.
It is an object of the present invention to ameliorate one or more disadvantages of the prior art.
According to one aspect of the present invention there is provided a method of decoding a coded representation of a block of coefficients, the method comprises the step of: (i) performing, for each bitplane of said block from a maximum bitplane to a minimum bitplane, the sub-steps of: (i)(a) dividing a current bitplane of said block into a number of first sub-regions and/or a number of second sub-regions; (i)(b) decoding a portion of the coded representation as the respective significances of said first sub-regions in said current bitplane of said block; and (i)(c) decoding another portion of the coded representation as the respective bits of each coefficient in said second sub-regions of said current bitplane.
According to another aspect of the present invention there is provided apparatus for decoding a coded representation of a block of coefficients, the apparatus comprising: means for performing, for each bitplane of said block from a maximum bitplane to a minimum bitplane, the operations of the following dividing means, first decoding means, and second decoding means: dividing means for dividing a current bitplane of said block into a number of first sub-regions and/or a number of second sub-regions; first decoding means for decoding a portion of the coded representation as the respective significances of said first sub-regions in said current bitplane of said block; and second decoding means for decoding another portion of the coded representation as the respective bits of each coefficient in said second sub-regions of said current bitplane.
According to still another aspect of the present invention there is provided a computer program product comprising a computer readable medium having a computer program for decoding a coded representation of a block of coefficients, the computer program product comprising: means for performing, for each bitplane of said block from a maximum bitplane to a minimum bitplane, the operations of the following dividing means, first decoding means, and second decoding means: dividing means for dividing a current bitplane of said block into a number of first sub-regions and/or a number of second sub-regions; first decoding means for decoding a portion of the coded representation as the respective significances of said first sub-regions in said current bitplane of said block; and second decoding means for decoding another portion of the coded representation as the respective bits of each coefficient in said second sub-regions of said current bitplane.
According to still another aspect of the present invention there is provided a decoder for decoding a coded representation of a digital image, wherein the coded representation comprises coded n bitplanes of a block of coefficients, said decoder comprising: a decoder for decoding the coded n bitplanes to obtain, for each coefficient in the block, a corresponding bit plane number of the maximum significant bit plane of the coefficient and the bits below the most significant bit of said coefficient; a first storage means for storing, for each coefficient in the block, said bit plane number; a second storage means comprising n segments for storing, for each coefficient in the block, said bits of said coefficient in respective segments; and a pixel generator for generating pixels based on said corresponding bit plane numbers stored in the first storage means and the bits of the corresponding coefficients stored in the second storage means.
According to still another aspect of the present invention there is provided a decoder for decoding a coded representation of a block of coefficients, wherein said decoder processes each bitplane of said block from a maximum bitplane to a minimum bitplane in turn, and comprises: a first decoder for decoding a portion of the coded representation and setting a maximum bitplane number of a said coefficient to the number of a current bitplane, if said coefficient is significant in the current bitplane; wherein said decoder comprises: means for partitioning regions of a current bitplane; and means for decoding a portion of the coded representation and determining the respective significances of said.regions and coefficients in said current bitplane; a second decoder for decoding another portion of the coded representation as respective bits of said coefficients in the current bitplane, if said coefficients have a most significant bit in a bitplane greater than the current bitplane; a first storage means for storing, for each coefficient in the block, said maximum bit plane number; a second storage means comprising a plurality of segments for storing said respective bits of said coefficients in said current bitplane in one said segment, wherein for each coefficient in the block, said bits of any one said coefficient are in different segments; and a pixel generator for generating pixels based on said maximum bit plane numbers stored in the first storage means and the bits of the corresponding coefficients stored in the second storage means.